#include"SqList.h"
// define operate
void InitSqList(SqList& L) {
    L.length = 0;
}

// Insert
bool SqListInsert(SqList& L, int i, ElemType e) {
    if (L.length >= MaxSize) {
        return false;
    }
    if (i < 1 || i > L.length + 1) {
        return false;
    }

    for (int j = L.length; j >= i; --j) {
        L.data[j] = L.data[j - 1];
    }
    ++L.length;
    L.data[i - 1] = e;
    return true;
}

// GetElem (Location)
bool GetElem(SqList L, int i, int& e) {
    if (L.length == 0) {
        return false;
    }
    if (i < 1 || i > L.length) {
        return false;
    }
    e = L.data[i - 1];
    return true;
}

// LocateElem
int LocateElem(SqList L, int e) {
    for (int i = 0; i < L.length; ++i) {
        if (L.data[i] == e) {
            return i + 1;
        }
    }
    return 0;
}



// define operate
void InitSeqList(SeqList& L) {
    L.data = new ElemType[InitSize];
    L.length = 0;
    L.MS = InitSize;
}

// Insert
bool SeqListInsert(SeqList& L, int i, ElemType e) {
    if (L.length >= L.MS) {
        return false;
    }
    if (i < 1 || i > L.length + 1) {
        return false;
    }

    for (int j = L.length; j >= i; --j) {
        L.data[j] = L.data[j - 1];
    }
    ++L.length;
    L.data[i - 1] = e;
    return true;
}

// GetElem (Location)
bool GetElem(SeqList L, int i, int& e) {
    if (L.length == 0) {
        return false;
    }
    if (i < 1 || i > L.length) {
        return false;
    }
    e = L.data[i - 1];
    return true;
}

// LocateElem
int LocateElem(SeqList L, int e) {
    for (int i = 0; i < L.length; ++i) {
        if (L.data[i] == e) {
            return i + 1;
        }
    }
    return 0;
}
